/**
 * 游戏启动文件
 */

// 全局游戏变量
let game;

// 等待DOM加载完成
document.addEventListener('DOMContentLoaded', () => {
    console.log('🚀 开始加载坦克大战游戏...');
    
    // 创建游戏实例
    game = new Game();
    
    // 导出到全局作用域以便调试
    window.game = game;
    
    // 添加一些启动特效
    setTimeout(() => {
        if (game && game.particleSystem) {
            // 在屏幕中央创建启动爆炸
            game.particleSystem.createExplosion(
                window.innerWidth / 2,
                window.innerHeight / 2,
                'spark',
                3
            );
            
            // 创建环境粒子
            game.particleSystem.createAmbientParticles({
                width: window.innerWidth,
                height: window.innerHeight
            }, 10);
        }
    }, 500);
    
    // 显示加载完成信息
    setTimeout(() => {
        console.log('✅ 坦克大战游戏加载完成!');
        console.log('🎮 按 "开始游戏" 按钮开始游戏');
        console.log('⚡ 控制说明:');
        console.log('   🎯 WASD/方向键: 移动坦克');
        console.log('   💥 空格键: 射击');
        console.log('   ⏸️ ESC: 暂停游戏');
        console.log('   🔄 R: 重新开始');
    }, 1000);
});

// 添加全局键盘快捷键
document.addEventListener('keydown', (event) => {
    // 防止默认的浏览器行为
    if (['Space', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.code)) {
        event.preventDefault();
    }
    
    // 快速重启 (Ctrl+R 或 Cmd+R)
    if ((event.ctrlKey || event.metaKey) && event.code === 'KeyR') {
        event.preventDefault();
        if (game) {
            game.restart();
        }
    }
});

// 处理页面失去焦点时暂停游戏
window.addEventListener('blur', () => {
    if (game && game.gameState === 'playing') {
        game.pause();
    }
});

// 处理页面获得焦点
window.addEventListener('focus', () => {
    // 不自动恢复游戏，让玩家手动恢复
    console.log('👀 游戏窗口获得焦点');
});

// 处理错误
window.addEventListener('error', (event) => {
    console.error('🚨 游戏运行错误:', event.error);
    console.error('📝 错误详情:', event.filename, ':', event.lineno);
});

// 性能监控
let performanceMonitor = {
    lastCheck: Date.now(),
    frameCount: 0,
    
    update() {
        this.frameCount++;
        const now = Date.now();
        
        if (now - this.lastCheck > 5000) { // 每5秒检查一次
            const fps = Math.round(this.frameCount / 5);
            
            if (fps < 30) {
                console.warn('⚠️ 性能警告: FPS过低 (' + fps + ')');
                console.log('💡 建议: 关闭其他程序或降低画质');
            }
            
            this.frameCount = 0;
            this.lastCheck = now;
        }
    }
};

// 启动性能监控
setInterval(() => {
    performanceMonitor.update();
}, 100);

// 添加调试信息
console.log('🔧 调试模式可用');
console.log('🖱️ 在控制台输入 "game" 访问游戏对象');
console.log('🎨 在控制台输入 "game.particleSystem.createExplosion(x, y)" 创建爆炸效果'); 